vuex 是用來集中處理資料的地方,假設我們要管理 user 資料,透過 getters
顯示資料,透過 commit
觸發 mutations
裡的 function 改變 user 資料
vuex
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
export default new Vuex.Store({
state: {
user: {
name: ''
}
},
getters: {
user(state) {
return state.user
}
},
mutations: {
updateName(state, payload) {
state.user.name = payload
}
}
});
html
<input :value="user.name" @input="updateName">
js
// ...
computed: {
user(){
return this.$store.getters.user
}
},
methods: {
updateName (e) {
this.$store.commit('updateName', e.target.value)
}
}
來自好想的 C 先生 - Chris 留言提出了更簡潔的寫法
<input :value="$store.getters.user.name" @input="$store.commit('updateName', $event.target.value)">